package command.usuario;

import java.io.IOException;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import model.Assistido;
import model.Instituicao;
import model.Pasta;
import model.Usuario;

import command.ICommand;

import dao.assinatura.AssistidoDAO;
import dao.assinatura.PastaDAO;
import dao.fabrica.FabricaDAO;


public class AdicionarAssistidoCommand implements ICommand{
	
	private String nome;
	private String endereco;
	private String bairro;
	private String cidade;
	private String cep;
	private String sexo;
	private String telefone;
	private String celular;
	private String profissao;
	private String cpf;
	private String rg;
	private String naturalidade;
	private String nascimento;
	
	
	
	public String execute(HttpServletRequest request) throws ServletException, IOException {
		

			try {
				
				 HttpSession session = (((HttpServletRequest)request).getSession());
				
				 nome = request.getParameter("inputNome");
				 
				 
				 if (nome == null)
				 {
					 return "/paginas/cadastro/assistido.jsp";
					 
				 }else
				 {
				
					 endereco = request.getParameter("inputEndereco");
					 bairro = request.getParameter("inputBairro");
					 cidade = request.getParameter("inputCidade");
					 cep = request.getParameter("inputCep");
					 sexo = request.getParameter("comboSexo");
					 telefone = request.getParameter("inputTelefone");
					 celular = request.getParameter("inputCelular");
					 profissao = request.getParameter("inputProfissao");
					 cpf = request.getParameter("inputCpf");
					 rg = request.getParameter("inputRg");
					 naturalidade = request.getParameter("inputNaturalidade");
					 nascimento = request.getParameter("inputNascimento");
				 
					 Assistido assistido = new Assistido(nome,endereco,bairro,cep,cidade,sexo,telefone,celular,profissao,cpf,rg,naturalidade,nascimento);
					 AssistidoDAO assistidoDAO = FabricaDAO.createAssistido();
					 
					 Instituicao ins = (Instituicao) session.getAttribute("instituicao");
					 Usuario user = (Usuario) session.getAttribute("usuario");
					 
					 if( ins != null )
					 {
						 int idAssistido = assistidoDAO.addAssistido(assistido);	
						 
						 Date data = new Date(); 
						 SimpleDateFormat formatador = new SimpleDateFormat("MMyyyydd");
						 
						 String idControle = formatador.format(data) + "-"+idAssistido;
						 
						 
						 //Crio a pasta junto com o assistido
						 Pasta pasta = new Pasta(data, idControle, "", idAssistido, ins.getId());
						 PastaDAO pastaDAO = FabricaDAO.createPasta();
						 
						 pastaDAO.addPastaUsuario(pasta,user.getId());
					 }
				 }
				
			} catch (SQLException e) {
				e.printStackTrace();
				return "/paginas/cadastro/cadastro_invalido.jsp";
			}
		return "/paginas/cadastro/assistido.jsp?resultado=OK";

	}
	
}